/* * Copyright (C) 2014 IUH �yber$oft Team * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package vn.cybersoft.obs.android.receivers; import java.util.List; import vn.cybersoft.obs.android.provider.PowerSchedule; import vn.cybersoft.obs.android.utilities.Log; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.BatteryManager; /** * @author Luan Vu (hlvu.cybersoft@gmail.com) * */ public class BatteryChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (Log.LOGV) { Log.v("******BatteryChangeReceiver.onReceive()"); } int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0); int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 100); int percent = level * 100 / scale; String selection = PowerSchedule.BATTERY_LEVEL + "=?"; String[] selectionArgs = { Integer.toString(percent) }; List<PowerSchedule> schedules = PowerSchedule.getSchedules(context.getContentResolver(), selection , selectionArgs); //we get the first schedule if get one more schedule. if (schedules.size() > 0) { if (Log.LOGV) { Log.v("******BatteryChangeReceiver.onReceive(): startExecuteService"); } Intent i = new Intent(PowerSchedule.EXECUTE_SCHEDULE_ACTION); i.putExtra(PowerSchedule.INTENT_EXTRA, schedules.get(0)); context.startService(i); } } }